////https://www.luogu.com.cn/problem/P1162
//
//#include<iostream>
//#include<queue>
//using namespace std;
//int n;
//const int N = 35;
//int x[N][N];
//typedef pair<int, int> node;
//int dx[] = { 0,0,-1,1 };
//int dy[] = { -1,1,0,0 };
//
//void bfs(int a, int b)
//{
//	queue<node> q;
//	q.push({ a,b });
//	x[a][b] = 2;
//
//	while (!q.empty())
//	{
//		auto t = q.front(); q.pop();
//		int tx = t.first, ty = t.second;
//		for (int i = 0; i < 4; i++)
//		{
//			int nx = tx + dx[i], ny = ty + dy[i];
//			if (nx < 0 || nx >= n || ny < 0 || ny >= n || x[nx][ny] != 0) continue;
//			q.push({ nx,ny });
//			x[nx][ny] = 2;
//		}
//	}
//}
//
//int main()
//{
//	cin >> n;
//	for (int i = 0; i < n; i++)
//		for (int j = 0; j < n; j++)
//			cin >> x[i][j];
//
//	for (int i = 1; i < n - 1; i++)
//	{
//		if (x[i][0] == 0)
//			bfs(i, 0);
//		if (x[i][n - 1] == 0)
//			bfs(i, n - 1);
//	}
//	for (int j = 0; j < n; j++)
//	{
//		if (x[0][j] == 0)
//			bfs(0, j);
//		if (x[n - 1][j] == 0)
//			bfs(n - 1, j);
//	}
//	for (int i = 0; i < n; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			if (x[i][j] == 2) cout << 0 << " ";
//			else if (x[i][j] == 0) cout << 2 << " ";
//			else cout << 1 << " ";
//		}
//		cout << endl;
//	}
//
//	return 0;
//}